home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / TextParser.a < prev    next >
Text File  |  1996-05-01  |  14KB  |  419 lines

  1. ;
  2. ;    File:        TextParser.a
  3. ;
  4. ;    Contains:    International Text Parser Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 8
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__TEXTPARSER__') = 'UNDEFINED' THEN
  19. __TEXTPARSER__ SET 1
  20.  
  21.     IF &TYPE('__CONDITIONALMACROS__') = 'UNDEFINED' THEN
  22.     include 'ConditionalMacros.a'
  23.     ENDIF
  24.     IF FOR_SYSTEM8_PREEMPTIVE THEN
  25.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  26.     include 'Types.a'
  27.     ENDIF
  28.     IF &TYPE('__TEXTOBJECTS__') = 'UNDEFINED' THEN
  29.     include 'TextObjects.a'
  30.     ENDIF
  31.     IF &TYPE('__TEXTCOMMON__') = 'UNDEFINED' THEN
  32.     include 'TextCommon.a'
  33.     ENDIF
  34.     IF &TYPE('__LOCALEOBJECTS__') = 'UNDEFINED' THEN
  35.     include 'LocaleObjects.a'
  36.     ENDIF
  37.     ENDIF
  38.     IF FOR_SYSTEM8_PREEMPTIVE THEN
  39.  
  40.  
  41. ; typedef UInt32                         ParsingToken
  42.  
  43. ; typedef ParsingToken                     BasicToken
  44.  
  45. ; typedef ParsingToken                     RangeToken
  46.  
  47. ; typedef ParsingToken                     KeywordToken
  48.  
  49. ; typedef ParsingToken                     MultiChoiceToken
  50.  
  51. ; typedef ParsingToken                     ComposedToken
  52.  
  53. ; defintions for the future
  54. ; typedef ParsingToken                     RegExpToken
  55.  
  56. ; typedef ParsingToken                     GrammarRuleToken
  57.  
  58. ; definition of Pointers to tokens
  59. ; typedef ParsingToken *                ParsingTokenPtr
  60.  
  61. ; typedef ParsingTokenPtr                 BasicTokenPtr
  62.  
  63. ; typedef ParsingTokenPtr                 RangeTokenPtr
  64.  
  65. ; typedef ParsingTokenPtr                 KeywordTokenPtr
  66.  
  67. ; typedef ParsingTokenPtr                 MultiChoiceTokenPtr
  68.  
  69. ; typedef ParsingTokenPtr                 ComposedTokenPtr
  70.  
  71. ; typedef OptionBits                     ParsingOptionBits
  72.  
  73. ; typedef LocaleObjectRef                 ParserLocaleObjectRef
  74.  
  75.  
  76.                                                             ;ParsingOptionBits
  77. kParseMainTokenOptionBit        EQU        0
  78. kIsAlphaNumericKeyWordOptionBit    EQU        1
  79. kIsCaseSensitiveParsingOptionBit EQU    2
  80. kIsDiacreticSensitiveParsingOptionBit EQU 3
  81. kParseTextEnclosedByLitearlDelimitersOptionBit EQU 4
  82. kIsCommentsAllowedOptionBit        EQU        5
  83.  
  84.                                                             ;ParsingOptionMask
  85. kStandardParsingOptionsMask        EQU        0
  86. kParseMainTokenOptionMask        EQU        $00000001
  87. kIsAlphaNumericKeyWordOptionMask EQU    $00000002
  88. kIsCaseSensitiveParsingOptionMask EQU    $00000004
  89. kIsDiacreticSensitiveParsingOptionMask EQU $00000008
  90. kParseTextEnclosedByLitearlDelimitersOptionMask EQU $00000010
  91. kIsCommentsAllowedOptionMask    EQU        $00000020
  92. ;  Basic Tokens definitions (try to match system 7 tokens when possible
  93.  
  94. kBasicTokenUnknown                EQU        0                    ;characters that don't have token definition
  95. kBasicTokenEscape                EQU        10                    ;character escape (e.g. '\' in "\n", "\t")
  96. kBasicTokenLeftParen            EQU        16                    ;open parenthesis
  97. kBasicTokenRightParen            EQU        17                    ;close parenthesis
  98. kBasicTokenLeftBracket            EQU        18                    ;open square bracket
  99. kBasicTokenRightBracket            EQU        19                    ;close square bracket
  100. kBasicTokenLeftCurly            EQU        20
  101. kBasicTokenRightCurly            EQU        21                    ;close curly bracket
  102. kBasicTokentokenLeftEnclose        EQU        22                    ;open guillemet
  103. kBasicTokenRightEnclose            EQU        23                    ;close guillemet
  104. kBasicTokenPlus                    EQU        24
  105. kBasicTokenMinus                EQU        25
  106. kBasicTokenAsterisk                EQU        26                    ;times/multiply
  107. kBasicTokenDivide                EQU        27
  108. kBasicTokenPlusMinus            EQU        28                    ;plus or minus symbol
  109. kBasicTokenSlash                EQU        29
  110. kBasicTokenBackSlash            EQU        30
  111. kBasicTokenLess                    EQU        31                    ;less than symbol
  112. kBasicTokenGreat                EQU        32                    ;greater than symbol
  113. kBasicTokenEqual                EQU        33
  114. kBasicTokenLessEqual1            EQU        35                    ;less than or equal, 1 character
  115. kBasicTokenGreatEqual1            EQU        37                    ;greater than or equal, 1 character
  116. kBasicTokenNotEqual                EQU        40                    ;not equal, 1 character
  117. kBasicTokenExclam                EQU        43                    ;exclamation point
  118. kBasicTokenTilde                EQU        44                    ;centered tilde
  119. kBasicTokenComma                EQU        45
  120. kBasicTokenPeriod                EQU        46
  121. kBasicTokenLeft2Quote            EQU        47                    ;open double quote
  122. kBasicTokenRight2Quote            EQU        48                    ;close double quote
  123. kBasicTokenLeft1Quote            EQU        49                    ;open single quote
  124. kBasicTokenRight1Quote            EQU        50                    ;close single quote
  125. kBasicToken2Quote                EQU        51                    ;double quote
  126. kBasicToken1Quote                EQU        52                    ;single quote
  127. kBasicTokenSemicolon            EQU        53
  128. kBasicTokenPercent                EQU        54
  129. kBasicTokenCaret                EQU        55
  130. kBasicTokenUnderline            EQU        56
  131. kBasicTokenAmpersand            EQU        57
  132. kBasicTokenAtSign                EQU        58
  133. kBasicTokenBar                    EQU        59                    ;vertical bar
  134. kBasicTokenQuestion                EQU        60
  135. kBasicTokenPi                    EQU        61                    ;lower-case pi
  136. kBasicTokenRoot                    EQU        62                    ;square root symbol
  137. kBasicTokenSigma                EQU        63                    ;capital sigma
  138. kBasicTokenIntegral                EQU        64                    ;integral sign
  139. kBasicTokenMicro                EQU        65
  140. kBasicTokenCapPi                EQU        66                    ;capital pi
  141. kBasicTokenInfinity                EQU        67
  142. kBasicTokenColon                EQU        68
  143. kBasicTokenHash                    EQU        69                    ;e.g. #
  144. kBasicTokenDollar                EQU        70
  145. kBasicTokenNoBreakSpace            EQU        71                    ;non-breaking space
  146. kBasicTokenFraction                EQU        72
  147. kBasicTokenIntlCurrency            EQU        73
  148. kBasicTokenLeftSingGuillemet    EQU        74
  149. kBasicTokenRightSingGuillemet    EQU        75
  150. kBasicTokenPerThousand            EQU        76
  151. kBasicTokenEllipsis                EQU        77
  152. kBasicTokenCenterDot            EQU        78
  153. kBasicTokenSpace                EQU        128
  154. kBasicTokenPasswordChar            EQU        129
  155.  
  156.                                                             ;predefined composed tokens
  157. kComposedTokenLessEqual2        EQU        16383                ;less than or equal, 2 characters (e.g. <=)
  158. kComposedTokenEqual2            EQU        16384                ;greater than or equal, 2 characters (e.g. >=)
  159. kComposedToken2Equal            EQU        16385                ;double equal (e.g. ==)
  160. kComposedTokenColonEqual        EQU        16386                ;colon equal
  161. kComposedTokenLessGreat            EQU        16387                ;less/greater, Pascal not equal (e.g. <>)
  162. kComposedTokenExclamEqual        EQU        16388                ;exclamation equal, C not equal (e.g. !=)
  163. kComposedTokenNewLine            EQU        16389                ;composed may be more than one (10,13)
  164.  
  165.                                                             ;predefined multiple choice tokens
  166. kChoiceTokenWhite                EQU        8192                ;white space (CR,LF,space, non break space)
  167. kChoiceTokenLeftLit                EQU        8193                ;literal begin , can be one or more
  168. kChoiceTokenRightLit            EQU        8194                ;literal end, can be one or more
  169. kChoiceTokenAlpha                EQU        8195                ;alphabetic char
  170. kChoiceTokenNumeric                EQU        8196                ;numeric char
  171. kChoiceTokenPunctuationChar        EQU        8197                ;punctuation char
  172. kChoiceTokenRightComment        EQU        8198                ; can be one or more
  173. kChoiceTokenLeftComment            EQU        8199                ; can be one or more
  174.  
  175.                                                             ;predefined token classes (not overridable for 8.0) mapped to regular expression tokens
  176. kTokenClassIdentifier            EQU        32768                ;  alphabetic or alphanumeric entities
  177. kTokenClassComment                EQU        32769                ;    anything inside comment delimiters 
  178. kTokenClassliteral                EQU        32770                ;    anything inside literal delimiters 
  179. kTokenClassIntegerNumber        EQU        32771                ; text is numeric presentation (integers)
  180. kTokenClassFloatingNumber        EQU        32772                ;text is numeric presentation (float)
  181. CharacterRange            RECORD 0
  182. ;  structure defining a range of char
  183. theCharRangeBegin         ds.l    1                ; offset: $0 (0)
  184. theCharRangeEnd             ds.l    1                ; offset: $4 (4)
  185. sizeof                     EQU *                    ; size:   $8 (8)
  186.                         ENDR
  187. ; typedef struct CharacterRange *        CharacterRangePtr
  188.  
  189. ; ============================================================locale object parser APIs====================================================
  190. ;
  191. ; extern OSStatus GetParserObjectByLocaleID(LocaleIdentifier theLocaleIdentifier, TextEncoding theEncoding, ParserLocaleObjectRef *theParserObject)
  192. ;
  193.     IF GENERATINGCFM THEN
  194.         IMPORT_CFM_FUNCTION GetParserObjectByLocaleID
  195.     ENDIF
  196.  
  197. ;
  198. ; extern OSStatus GetParserObjectByLocaleRef(LocaleRef locale, TextEncoding theEncoding, ParserLocaleObjectRef *theParserObject)
  199. ;
  200.     IF GENERATINGCFM THEN
  201.         IMPORT_CFM_FUNCTION GetParserObjectByLocaleRef
  202.     ENDIF
  203.  
  204. ;
  205. ; extern OSStatus GetCurrentParserObject(ParserLocaleObjectRef *theParserObject)
  206. ;
  207.     IF GENERATINGCFM THEN
  208.         IMPORT_CFM_FUNCTION GetCurrentParserObject
  209.     ENDIF
  210.  
  211. ;
  212. ; extern OSStatus GetParserObjectInfo(ParserLocaleObjectRef theParserObject, TextEncoding *theEncoding, LocaleIdentifier *theLocaleIdentifier)
  213. ;
  214.     IF GENERATINGCFM THEN
  215.         IMPORT_CFM_FUNCTION GetParserObjectInfo
  216.     ENDIF
  217.  
  218. ; ======================================================Iterator creation/modifcation==========================================================
  219. ;
  220. ; extern OSStatus CreateLexicalIterator(ParserLocaleObjectRef localeParserRef, TextObject theTextObject, TextObjectIndex startIndex, TextObjectIndex endIndex, ParsingOptionBits theParsingOptions, TTextParseRef *theParserRef)
  221. ;
  222.     IF GENERATINGCFM THEN
  223.         IMPORT_CFM_FUNCTION CreateLexicalIterator
  224.     ENDIF
  225.  
  226. ;
  227. ; extern OSStatus LexicalIteratorGetNextToken(TTextParseRef theParser, ParsingToken *theCurrentToken, TextObjectIndex *startIndex, TextObjectIndex *endIndex)
  228. ;
  229.     IF GENERATINGCFM THEN
  230.         IMPORT_CFM_FUNCTION LexicalIteratorGetNextToken
  231.     ENDIF
  232.  
  233. ;
  234. ; extern OSStatus LexicalIteratorSetCommentDelimiters(TTextParseRef refLexicalIterator, ParsingToken tokenLeftDel, ParsingToken tokenRightDel)
  235. ;
  236.     IF GENERATINGCFM THEN
  237.         IMPORT_CFM_FUNCTION LexicalIteratorSetCommentDelimiters
  238.     ENDIF
  239.  
  240. ;
  241. ; extern OSStatus LexicalIteratorReset(TTextParseRef refLexicalIterator)
  242. ;
  243.     IF GENERATINGCFM THEN
  244.         IMPORT_CFM_FUNCTION LexicalIteratorReset
  245.     ENDIF
  246.  
  247. ;
  248. ; extern OSStatus LexicalIteratorSetText(TTextParseRef refLexicalIterator, TextObject theTextObject, TextObjectIndex startIndex, TextObjectIndex endIndex)
  249. ;
  250.     IF GENERATINGCFM THEN
  251.         IMPORT_CFM_FUNCTION LexicalIteratorSetText
  252.     ENDIF
  253.  
  254. ;
  255. ; extern OSStatus LexicalIteratorSetTokenToMatch(TTextParseRef refLexicalIterator, ComposedToken theToken)
  256. ;
  257.     IF GENERATINGCFM THEN
  258.         IMPORT_CFM_FUNCTION LexicalIteratorSetTokenToMatch
  259.     ENDIF
  260.  
  261. ; ======================================================Tokens Get/Set APIs ==========================================================
  262. ;
  263. ; extern OSStatus LexicalIteratorDefineBasicToken(TTextParseRef refLexicalIterator, UInt32 theChar, BasicToken theToken)
  264. ;
  265.     IF GENERATINGCFM THEN
  266.         IMPORT_CFM_FUNCTION LexicalIteratorDefineBasicToken
  267.     ENDIF
  268.  
  269. ;
  270. ; extern OSStatus GetUniqueBasicToken(TTextParseRef refLexicalIterator, BasicToken *theToken)
  271. ;
  272.     IF GENERATINGCFM THEN
  273.         IMPORT_CFM_FUNCTION GetUniqueBasicToken
  274.     ENDIF
  275.  
  276. ;
  277. ; extern OSStatus LexicalIteratorDefineKeywordToken(TTextParseRef refLexicalIterator, TextObject theText, TextObjectIndex theStart, TextObjectIndex theEnd, KeywordToken theToken)
  278. ;
  279.     IF GENERATINGCFM THEN
  280.         IMPORT_CFM_FUNCTION LexicalIteratorDefineKeywordToken
  281.     ENDIF
  282.  
  283. ;
  284. ; extern OSStatus GetUniqueKeywordToken(TTextParseRef refLexicalIterator, KeywordToken *theToken)
  285. ;
  286.     IF GENERATINGCFM THEN
  287.         IMPORT_CFM_FUNCTION GetUniqueKeywordToken
  288.     ENDIF
  289.  
  290. ;
  291. ; extern OSStatus LexicalIteratorDefineRangeToken(TTextParseRef refLexicalIterator, UInt32 rangeBeginChar, UInt32 rangeEndChar, RangeToken theToken)
  292. ;
  293.     IF GENERATINGCFM THEN
  294.         IMPORT_CFM_FUNCTION LexicalIteratorDefineRangeToken
  295.     ENDIF
  296.  
  297. ;
  298. ; extern OSStatus GetUniqueRangeToken(TTextParseRef refLexicalIterator, RangeToken *theToken)
  299. ;
  300.     IF GENERATINGCFM THEN
  301.         IMPORT_CFM_FUNCTION GetUniqueRangeToken
  302.     ENDIF
  303.  
  304. ;
  305. ; extern OSStatus LexicalIteratorDefineMultiChoiceToken(TTextParseRef refLexicalIterator, ItemCount nChoices, ParsingToken theChoices[2147483647], MultiChoiceToken *theToken)
  306. ;
  307.     IF GENERATINGCFM THEN
  308.         IMPORT_CFM_FUNCTION LexicalIteratorDefineMultiChoiceToken
  309.     ENDIF
  310.  
  311. ;
  312. ; extern OSStatus GetUniqueMultiChoiceToken(TTextParseRef refLexicalIterator, MultiChoiceToken *theToken)
  313. ;
  314.     IF GENERATINGCFM THEN
  315.         IMPORT_CFM_FUNCTION GetUniqueMultiChoiceToken
  316.     ENDIF
  317.  
  318. ;
  319. ; extern OSStatus LexicalIteratorDefineComposedToken(TTextParseRef refLexicalIterator, ItemCount nChoices, ParsingToken theChoices[2147483647], ComposedToken *theToken)
  320. ;
  321.     IF GENERATINGCFM THEN
  322.         IMPORT_CFM_FUNCTION LexicalIteratorDefineComposedToken
  323.     ENDIF
  324.  
  325. ;
  326. ; extern OSStatus GetUniqueComposedToken(TTextParseRef refLexicalIterator, ComposedToken *theToken)
  327. ;
  328.     IF GENERATINGCFM THEN
  329.         IMPORT_CFM_FUNCTION GetUniqueComposedToken
  330.     ENDIF
  331.  
  332. ;
  333. ; extern OSStatus GetTextFromToken(TTextParseRef refLexicalIterator, ParsingToken theToken, TextObject TheText)
  334. ;
  335.     IF GENERATINGCFM THEN
  336.         IMPORT_CFM_FUNCTION GetTextFromToken
  337.     ENDIF
  338.  
  339. ;
  340. ; extern OSStatus GetLocaleTextFromToken(ParserLocaleObjectRef localeParserRef, ParsingToken theToken, TextObject TheText)
  341. ;
  342.     IF GENERATINGCFM THEN
  343.         IMPORT_CFM_FUNCTION GetLocaleTextFromToken
  344.     ENDIF
  345.  
  346. ;
  347. ; extern OSStatus GetRangeToken(TTextParseRef refLexicalIterator, RangeToken theToken, UInt32 *beginRangeChar, UInt32 *endRangeChar)
  348. ;
  349.     IF GENERATINGCFM THEN
  350.         IMPORT_CFM_FUNCTION GetRangeToken
  351.     ENDIF
  352.  
  353. ;
  354. ; extern OSStatus GetLocaleRangeToken(ParserLocaleObjectRef localeParserRef, RangeToken theToken, UInt32 *beginRangeChar, UInt32 *endRangeChar)
  355. ;
  356.     IF GENERATINGCFM THEN
  357.         IMPORT_CFM_FUNCTION GetLocaleRangeToken
  358.     ENDIF
  359.  
  360. ;
  361. ; extern OSStatus GetCountTokenChoices(TTextParseRef refLexicalIterator, MultiChoiceToken theToken, ItemCount *nChoices)
  362. ;
  363.     IF GENERATINGCFM THEN
  364.         IMPORT_CFM_FUNCTION GetCountTokenChoices
  365.     ENDIF
  366.  
  367. ;
  368. ; extern OSStatus GetLocaleCountTokenChoices(ParserLocaleObjectRef localeParserRef, MultiChoiceToken theToken, ItemCount *nChoices)
  369. ;
  370.     IF GENERATINGCFM THEN
  371.         IMPORT_CFM_FUNCTION GetLocaleCountTokenChoices
  372.     ENDIF
  373.  
  374. ;
  375. ; extern OSStatus GetMultiChoiceToken(TTextParseRef refLexicalIterator, MultiChoiceToken theToken, ParsingToken theChoices[2147483647])
  376. ;
  377.     IF GENERATINGCFM THEN
  378.         IMPORT_CFM_FUNCTION GetMultiChoiceToken
  379.     ENDIF
  380.  
  381. ;
  382. ; extern OSStatus GetLocaleMultiChoiceToken(ParserLocaleObjectRef localeParserRef, MultiChoiceToken theToken, ParsingToken theChoices[2147483647])
  383. ;
  384.     IF GENERATINGCFM THEN
  385.         IMPORT_CFM_FUNCTION GetLocaleMultiChoiceToken
  386.     ENDIF
  387.  
  388. ;
  389. ; extern OSStatus GetCountTokenComposition(TTextParseRef refLexicalIterator, ComposedToken theToken, ItemCount *nChoices)
  390. ;
  391.     IF GENERATINGCFM THEN
  392.         IMPORT_CFM_FUNCTION GetCountTokenComposition
  393.     ENDIF
  394.  
  395. ;
  396. ; extern OSStatus GetLocaleCountTokenComposition(ParserLocaleObjectRef localeParserRef, ComposedToken theToken, ItemCount *nChoices)
  397. ;
  398.     IF GENERATINGCFM THEN
  399.         IMPORT_CFM_FUNCTION GetLocaleCountTokenComposition
  400.     ENDIF
  401.  
  402. ;
  403. ; extern OSStatus GetComposedToken(TTextParseRef refLexicalIterator, ComposedToken theToken, ParsingToken theComposition[2147483647])
  404. ;
  405.     IF GENERATINGCFM THEN
  406.         IMPORT_CFM_FUNCTION GetComposedToken
  407.     ENDIF
  408.  
  409. ;
  410. ; extern OSStatus GetLocaleComposedToken(ParserLocaleObjectRef localeParserRef, ComposedToken theToken, ParsingToken theChoices[2147483647])
  411. ;
  412.     IF GENERATINGCFM THEN
  413.         IMPORT_CFM_FUNCTION GetLocaleComposedToken
  414.     ENDIF
  415.  
  416.     ENDIF
  417.     ENDIF ; __TEXTPARSER__ 
  418.  
  419.